package com.cykj.finance.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.cykj.common.core.annotation.Excel;
import com.cykj.common.core.web.domain.BaseEntity;
import com.cykj.system.api.domain.Shop;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

/**
 * 提现记录对象 bs_withdrawal_records
 *
 * @author 天才少年
 * @date 2025-08-15
 */
public class FnWithdrawalRecords extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 提现ID
     */
    private Long id;

    /**
     * 提现编号(唯一)
     */
    @Excel(name = "提现编号(唯一)")
    private String withdrawalNo;

    /**
     * 店铺ID
     */
    @Excel(name = "店铺ID")
    private Long shopId;


    /**
     * 店铺信息
     */
    @Excel(name = "店铺信息")
    private Shop shop;

    /**
     * 账户类型(1:支付宝,2:银行卡)
     */
    @Excel(name = "账户类型(1:支付宝,2:银行卡)")
    private Integer accountType;

    /**
     * 支付宝账号
     */
    @Excel(name = "支付宝账号")
    private String alipayAccount;

    /**
     * 申请人姓名
     */
    @Excel(name = "申请人姓名")
    private String accountHolder;

    /**
     * 身份证号(加密存储)
     */
    @Excel(name = "身份证号")
    private String idCardNo;

    /**
     * 身份证正面照
     */
    @Excel(name = "身份证正面照")
    private String idCardFront;

    /**
     * 身份证反面照
     */
    @Excel(name = "身份证反面照")
    private String idCardBack;


    /**
     * 身份证正面照Url
     */
    @Excel(name = "身份证正面照Url")
    private String idCardFrontUrl;

    /**
     * 身份证反面照Url
     */
    @Excel(name = "身份证反面照Url")
    private String idCardBackUrl;


    /**
     * 手机号码
     */
    @Excel(name = "手机号码")
    private String phone;

    /**
     * 提现金额
     */
    @Excel(name = "提现金额")
    private BigDecimal amount;

    /**
     * 状态(0:已驳回,1:已通过,2:待审核)
     */
    @Excel(name = "状态(0:已驳回,1:已通过,2:待审核)")
    private Long status;

    /**
     * 驳回理由
     */
    @Excel(name = "驳回理由")
    private String rejectReason;

    /**
     * 审核人ID
     */
    @Excel(name = "审核人ID")
    private String checkerId;

    /**
     * 审核时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "审核时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date checkTime;

    /**
     * 打款时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "打款时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date paymentTime;

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setWithdrawalNo(String withdrawalNo) {
        this.withdrawalNo = withdrawalNo;
    }

    public String getWithdrawalNo() {
        return withdrawalNo;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setAccountType(Integer accountType) {
        this.accountType = accountType;
    }

    public Integer getAccountType() {
        return accountType;
    }

    public void setAlipayAccount(String alipayAccount) {
        this.alipayAccount = alipayAccount;
    }

    public String getAlipayAccount() {
        return alipayAccount;
    }

    public void setAccountHolder(String accountHolder) {
        this.accountHolder = accountHolder;
    }

    public String getAccountHolder() {
        return accountHolder;
    }

    public void setIdCardNo(String idCardNo) {
        this.idCardNo = idCardNo;
    }

    public String getIdCardNo() {
        return idCardNo;
    }

    public void setIdCardFront(String idCardFront) {
        this.idCardFront = idCardFront;
    }

    public String getIdCardFront() {
        return idCardFront;
    }

    public void setIdCardBack(String idCardBack) {
        this.idCardBack = idCardBack;
    }

    public String getIdCardBack() {
        return idCardBack;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPhone() {
        return phone;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setStatus(Long status) {
        this.status = status;
    }

    public Long getStatus() {
        return status;
    }

    public void setRejectReason(String rejectReason) {
        this.rejectReason = rejectReason;
    }

    public String getRejectReason() {
        return rejectReason;
    }

    public void setCheckerId(String checkerId) {
        this.checkerId = checkerId;
    }

    public String getCheckerId() {
        return checkerId;
    }

    public void setCheckTime(Date checkTime) {
        this.checkTime = checkTime;
    }

    public Date getCheckTime() {
        return checkTime;
    }

    public void setPaymentTime(Date paymentTime) {
        this.paymentTime = paymentTime;
    }

    public Date getPaymentTime() {
        return paymentTime;
    }


    public String getIdCardFrontUrl() {
        return idCardFrontUrl;
    }

    public void setIdCardFrontUrl(String idCardFrontUrl) {
        this.idCardFrontUrl = idCardFrontUrl;
    }

    public String getIdCardBackUrl() {
        return idCardBackUrl;
    }

    public void setIdCardBackUrl(String idCardBackUrl) {
        this.idCardBackUrl = idCardBackUrl;
    }

    public Shop getShop() {
        return shop;
    }

    public void setShop(Shop shop) {
        this.shop = shop;
    }

    @Override
    public String toString() {
        return "FnWithdrawalRecords{" +
                "id=" + id +
                ", withdrawalNo='" + withdrawalNo + '\'' +
                ", shopId=" + shopId +
                ", shop=" + shop +
                ", accountType=" + accountType +
                ", alipayAccount='" + alipayAccount + '\'' +
                ", accountHolder='" + accountHolder + '\'' +
                ", idCardNo='" + idCardNo + '\'' +
                ", idCardFront='" + idCardFront + '\'' +
                ", idCardBack='" + idCardBack + '\'' +
                ", idCardFrontUrl='" + idCardFrontUrl + '\'' +
                ", idCardBackUrl='" + idCardBackUrl + '\'' +
                ", phone='" + phone + '\'' +
                ", amount=" + amount +
                ", status=" + status +
                ", rejectReason='" + rejectReason + '\'' +
                ", checkerId=" + checkerId +
                ", checkTime=" + checkTime +
                ", paymentTime=" + paymentTime +
                '}';
    }
}
